/***********************************************************************
 * Module:  Reparation.java
 * Author:  Simon
 * Purpose: Defines the Class Reparation
 ***********************************************************************/

package Modele;

import java.util.*;

import DAO.DAOAgentMaintenance;
import DAO.DAOVelo;

/** Objet définissant les réparations */
public class Reparation {
	/** Identifiant de la réparation */
	private int idReparation;
	/** Identifiant de l'agent de maintenance de la réparation */
	private int idAgentMaintenance;
	/** Identifiant du vélo de la station */
	private int idVelo;
	/** Date de début du stationnement */
	private Date dateDeReparation;

	/**
	 * Instancie une réparation
	 * 
	 * @param idAgentMaintenance
	 *            Identifiant de l'agent de maintenance
	 * @param idVelo
	 *            Identifiant du vélo
	 * @param dateDeReparation
	 *            Date de la réparation
	 */
	public Reparation(int idAgentMaintenance, int idVelo, Date dateDeReparation) {
		this.idAgentMaintenance = idAgentMaintenance;
		this.idVelo = idVelo;
		this.dateDeReparation = dateDeReparation;
	}

	/**
	 * Instancie une réparation
	 * 
	 * @param idReparation
	 *            Identifiant de la réparation
	 * @param idAgentMaintenance
	 *            Identifiant de l'agent de maintenance
	 * @param idVelo
	 *            Identifiant du vélo
	 * @param dateDeReparation
	 *            Date de la réparation
	 */
	public Reparation(int idReparation, int idAgentMaintenance, int idVelo,
			Date dateDeReparation) {
		this.idReparation = idReparation;
		this.idAgentMaintenance = idAgentMaintenance;
		this.idVelo = idVelo;
		this.dateDeReparation = dateDeReparation;
	}

	/**
	 * Renvoie l'agent de maintenance concerné par la réparation
	 * 
	 * @return L'agent de maintenance
	 */
	public AgentMaintenance getAgentMaintenance() {
		return DAOAgentMaintenance
				.getAgentMaintenanceById(getIdAgentMaintenance());
	}

	/**
	 * Renvoie le vélo concerné par la réparation
	 * 
	 * @return Le vélo
	 */
	public Velo getVelo() {
		return DAOVelo.getVeloById(getIdVelo());
	}

	/**
	 * Renvoie la date de réparation
	 * 
	 * @return La date
	 */
	public Date getDateDeReparation() {
		return dateDeReparation;
	}

	/**
	 * Assigne la date de réparation
	 * 
	 * @param newDateDeReparation
	 */
	public void setDateDeReparation(Date newDateDeReparation) {
		dateDeReparation = newDateDeReparation;
	}

	/**
	 * Renvoie l'identifiant de la réparation
	 * 
	 * @return L'identifiant de la réparation
	 */
	public int getIdReparation() {
		return idReparation;
	}

	/**
	 * Renvoie l'identifiant de l'agent de maintenance de la réparation
	 * 
	 * @return L'identifiant de l'agent de maintenance de la réparation
	 */
	public int getIdAgentMaintenance() {
		return idAgentMaintenance;
	}

	/**
	 * Assigne l'identifiant de l'agent de maintenance de la réparation
	 * 
	 * @param newIdAgentMaintenance
	 */
	public void setIdAgentMaintenance(int newIdAgentMaintenance) {
		idAgentMaintenance = newIdAgentMaintenance;
	}

	/**
	 * Renvoie l'identifiant du vélo de la réparation
	 * 
	 * @return L'identifiant du vélo de la réparation
	 */
	public int getIdVelo() {
		return idVelo;
	}

	/**
	 * Assigne l'identifiant du vélo de la réparation
	 * 
	 * @param newIdVelo
	 */
	public void setIdVelo(int newIdVelo) {
		idVelo = newIdVelo;
	}

}